import acroMLClassMethod from './acroML.ClassMethod.mjs';
import {toValue,toRaw,reactive} from 'vue';

function t_AccordionPanel(t,instWrap){
  let inst=instWrap.$;
  acroMLClassMethod.translateProps(t,inst.props,['title']);
}
function t_DataGrid(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_DataGrid',instWrap);
  /**
   * 这里翻译filterOperators第一次有效，切换语言时不会再翻译。改为翻译GridFilterButton
   */
  // let filterOperators=instWrap.filterOperators;
  // if (filterOperators){
  //   for (let key in filterOperators){
  //     let fo=filterOperators[key];
  //     acroMLClassMethod.translateProps(t,fo,['text']);
  //   }
  // }
}
function t_GridColumn(t,instWrap){
  let inst=instWrap.$;
  //console.log(instWrap);
  acroMLClassMethod.translateProps(t,inst.props,['title']);
  //console.log(inst.props.title);
}
function t_GridFilterButton(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_GridFilterButton',instWrap);
  let items=instWrap.$data.items;
  if (items){
    for(let i=0;i<items.length;i++){
      let item=items[i];
      acroMLClassMethod.translateProps(t,item,['text']);
    }
  }
}
function t_MenuItem(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_MenuItem',instWrap);
  acroMLClassMethod.translateProps(t,inst.props,['text']);
}
function t_SubMenu(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_SubMenu',instWrap);
  // acroMLClassMethod.translateProps(t,inst.props,['text']);
}
function t_MenuButton(t,instWrap){
  let inst=instWrap.$;
  // console.log('t_MenuButton',instWrap);
  acroMLClassMethod.translateProps(t,inst.props,['text']);
}
function t_Menu(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_Menu',instWrap);
  // acroMLClassMethod.translateProps(t,inst.props,['text']);
}
function t_SideMenu(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_SideMenu',instWrap);
  if (inst.props.data){
    function transNodes(nodes){
      for(let i=0;i<nodes.length;i++){
        let node=nodes[i];
        acroMLClassMethod.translateProps(t,node,['text']);
        if (node.children) transNodes(node.children);
      }
    }
    transNodes(inst.props.data);
  }
}
function t_TextBox(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_TextBox',instWrap);
  acroMLClassMethod.translateProps(t,inst.props,['placeholder']);
}
function t_Addon(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_Addon',instWrap);
  //acroMLClassMethod.translateProps(t,inst.props,['placeholder']);
  function scanNode(node){
    //console.log(node.type,node.nodeName,node.innerText,node.innerHTML,node.outerHTML);
    /**
     * Addon有多种写法：
      <NumberBox :value="100">
          <Addon align="left">
              <LinkButton iconCls="icon-search" :style="{borderRadius:0,borderWidth:'0 1px 0 0',width:'70px',height:'30px'}">Search</LinkButton>
          </Addon>
      </NumberBox>
      <SearchBox style="width:300px"
          placeholder="Edit">
        <Addon>
          <span class="textbox-icon icon-clear" title="Clear" @click="value=null"></span>
        </Addon>
      </SearchBox>
     * 修改node.__vnode.props.title无效
     */
    if (node.title){
      acroMLClassMethod.translateProp(t,node,'title');
    }
    // if (node.__vnode && node.__vnode.props){
    //   acroMLClassMethod.translateProp(t,node.__vnode.props,'title');
    // }
    for(let i=0;i<node.childNodes.length;i++){
      scanNode(node.childNodes[i]);
    }
  }
  scanNode(instWrap.$el);
  inst.props={...inst.props};
}

function t_SwitchButton(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_TextBox',instWrap);
  acroMLClassMethod.translateProps(t,inst.props,['onText','offText','handleText']);
}

function t_Dialog(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_Dialog',instWrap);
  acroMLClassMethod.translateProps(t,inst.props,['title']);
}

function t_Panel(t,instWrap){
  let inst=instWrap.$;
  acroMLClassMethod.translateProps(t,inst.props,['title']);
}

function t_TabPanel(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_TabPanel',instWrap);
  /**
   * 奇怪：这里翻译后，切换tab又回去了。改为翻译TabPanelHeader。
   */
  //acroMLClassMethod.translateProps(t,inst.props,['title']);
}

function t_Tabs(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_Tabs',instWrap);
}

function t_TabPanelHeader(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_TabPanelHeader',instWrap);
}

function t_Tooltip(t,instWrap){
  let inst=instWrap.$;
  //console.log('t_Tooltip',instWrap);
}

function t_TooltipContent(t,instWrap){
  let inst=instWrap.$;
  console.log('t_TooltipContent',instWrap);
  /**
   * Tooltip创建TooltipContent后，是render到document的body上，没有在vue的app中，所以拦截不到。
   */
}

acroMLClassMethod.register('LinkButton',acroMLClassMethod.t_element);
acroMLClassMethod.register('FileButton',acroMLClassMethod.t_element);
acroMLClassMethod.register('Label',acroMLClassMethod.t_element);
acroMLClassMethod.register('AccordionPanel',t_AccordionPanel);
acroMLClassMethod.register('DataGrid',t_DataGrid);
acroMLClassMethod.register('GridColumn',t_GridColumn);
acroMLClassMethod.register('GridFilterButton',t_GridFilterButton);
acroMLClassMethod.register('Menu',t_Menu);
acroMLClassMethod.register('MenuItem',t_MenuItem);
acroMLClassMethod.register('SubMenu',t_SubMenu);
acroMLClassMethod.register('SideMenu',t_SideMenu);
acroMLClassMethod.register('MenuButton',t_MenuButton);
acroMLClassMethod.register('SplitButton',t_MenuButton);
acroMLClassMethod.register('SwitchButton',t_SwitchButton);
acroMLClassMethod.register('TextBox',t_TextBox);
acroMLClassMethod.register('SearchBox',t_TextBox);
acroMLClassMethod.register('Addon',t_Addon);
acroMLClassMethod.register('Panel',t_Panel);
acroMLClassMethod.register('Tabs',t_Tabs);
acroMLClassMethod.register('TabPanel',t_TabPanel);
acroMLClassMethod.register('TabPanelHeader',acroMLClassMethod.t_element);//t_TabPanelHeader);
acroMLClassMethod.register('Tooltip',t_Tooltip);
// acroMLClassMethod.register('TooltipContent',t_TooltipContent);
acroMLClassMethod.register('Dialog',t_Dialog);

export default {}
export {}